{
    "env": {
        "browser": true,
        "es2021": true
    },
    "extends": [
        "airbnb",
        "plugin:react/recommended",
        "prettier",
        "plugin:@typescript-eslint/recommended"
    ],
    "parserOptions": {
        "ecmaVersion": "latest",
        "sourceType": "module",
        "strictNullChecks": false,
        "project": "./tsconfig.json",
        "ecmaFeatures": {
            "jsx": true
        }
    },
    "plugins": [
        "react",
        "react-hooks",
        "@typescript-eslint",
        "prettier",
        "import"
    ],
    "rules": {
        "react/require-default-props": "warn",
        "no-empty-function": "off",
        "@typescript-eslint/no-empty-function": "warn",
        "camelcase": "warn",
        "no-plusplus": "warn",
        "no-shadow": "warn",
        "@typescript-eslint/no-shadow": "error",
        "react/self-closing-comp": [
            "warn",
            {
                "component": true,
                "html": true
            }
        ],
        "react/no-unescaped-entities": [
            "error",
            {
                "forbid": [
                    {
                        "character": "\"",
                        "alternatives": [
                            "&quot;",
                            "&ldquo;",
                            "&#34;",
                            "&rdquo;"
                        ]
                    }
                ]
            }
        ],
        "react/jsx-fragments": "off",
        "arrow-body-style": "warn",
        "react/jsx-props-no-spreading": "off",
        "@typescript-eslint/no-var-requires": "off",
        "allowImportExportEverywhere": 0,
        "import/first": [
            "error",
            "absolute-first"
        ],
        "no-extra-semi": "error",
        "import/prefer-default-export": "off",
        "import/no-unresolved": "warn",
        "no-undef": "warn",
        "no-unused-vars": "warn",
        "react/jsx-filename-extension": [
            1,
            {
                "extensions": [
                    ".tsx"
                ]
            }
        ],
        "import/extensions": [
            "error",
            "ignorePackages",
            {
                "ts": "never",
                "tsx": "never"
            }
        ],
        "dot-notation": "off",
        "import/no-extraneous-dependencies": [
            "error",
            {
                "devDependencies": true,
                "optionalDependencies": false,
                "peerDependencies": false,
                "packageDir": "./"
            }
        ],
        "react/function-component-definition": [
            "error",
            {
                "namedComponents": [
                    "function-declaration",
                    "arrow-function"
                ],
                "unnamedComponents": "arrow-function"
            }
        ]
    },
    "parser": "@typescript-eslint/parser",
    "settings": {
        "react": {
            "version": "detect"
        },
        "import/resolver": {
            "node": {
                "extensions": [
                    ".js",
                    ".jsx",
                    ".ts",
                    ".tsx"
                ]
            }
        }
    }
}
